#pragma once

#include "Sourcecode/Base/Layer.h"

namespace Hazal
{
	class HZ_DLL_OPTION CImGuiLayer : public CLayer
	{
	public:
		CImGuiLayer();

		~CImGuiLayer();

		void OnAttach() override;

		void OnDetach() override;

		void OnEvent(CEvent& event) override;

	public:
		void Begin();

		void End();

	public:
		inline void SetBlockEvents(bool bBlock) { m_bBlockEvents = bBlock; }

	private:
		bool OnImGuiCaptureMouseMoved(CMouseMovedEvent& event);

		bool OnImGuiCaptureKeyboard(CKeyPressedEvent& event);

		bool OnImGuiCaptureMouseScrolled(CMouseScrolledEvent& event);

		void SetDarkThemeColors();

	private:
		float m_fTime;
		bool m_bBlockEvents;
	};

}